package cn.iocoder.yudao.module.erp.dal.dataobject.dp;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.time.LocalDateTime;
import java.util.List;

import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * ERP总制单 DO
 * @author 天使管理员
 */
@TableName("erp_dp")
@KeySequence("erp_dp_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DpDO extends BaseDO {
    /**
     * 运单号
     */
    @TableId(type = IdType.INPUT)
    private String id;
    /**
     * 货号
     */
    private String no;
    /**
     * 仓库类型 义乌1
     */
    private Integer storeType;
    /**
     * 入库品名
     */
    private String inName;
    /**
     * 总件数
     */
    private Integer inCount;
    /**
     * 总体积
     */
    private Double inVolume;
    /**
     * 总重量
     */
    private Double weight;
    /**
     * 密度
     */
    private Double density;
    /**
     * 剩余总件数
     */
    private Integer remCount;
    /**
     * 剩余总体积
     */
    private Double remVolume;
    /**
     * 剩余总重量
     */
    private Double remWeight;
    /**
     * 出库总件数
     */
    @TableField(exist = false)
    private Integer outCount;
    /**
     * 出库总体积
     */
    @TableField(exist = false)
    private Double outVolume;
    /**
     * 出库总重量
     */
    @TableField(exist = false)
    private Double outWeight;
    /**
     * 到货件数
     */
    private Integer arrCount;
    /**
     * 到货体积
     */
    private Double arrVolume;
    /**
     * 到货重量
     */
    private Double arrWeight;
    /**
     * 到货时间
     */
    private LocalDateTime arrivedTime;
    /**
     * 配车出库时单据的备注说明
     */
    private String totalNote;
    /**
     * 送货人联系方式
     */
    private String deliveryPhone;
    /**
     * 送货人名称
     */
    private String deliveryName;
    /**
     * 垫付金额
     */
    private Double earpayAmount;
    /**
     * 入库照片
     */
    private String inPic;
    /**
     * 线路选择 东线1 西线2
     */
    private Integer line;
    /**
     * 用户输入的具体路线
     */
    private String way;
    /**
     * 货值
     */
    private Double goodsValue;
    /**
     * 保费
     */
    private Double premium;
    /**
     * 保率
     */
    private Integer guaranteedRate;
    /**
     * 是否核销 0否1是
     */
    private Integer writeOff;
    /**
     * 签收数量
     */
    @TableField(exist = false)
    private Integer signNum;
    /**
     * 核销费用
     */
    private Double writeExpenses;
    /**
     * 优惠金额
     */
    private Double discountAmount;
    /**
     * 附件
     */
    private String file;
    /**
     * 备注
     */
    private String note;
    /**
     * 发货人
     */
    private String shipper;
    /**
     * 发货地
     */
    private String departure;
    /**
     * 目的地
     */
    private String destination;
    /**
     * 收货人
     */
    private String consignee;
    /**
     * 垫付打包费
     */
    private Double advancePayPack;
    /**
     * 垫付提货费
     */
    private Double advancePayPackUp;
    /**
     * 垫付国内运费
     */
    private Double advancePayChinaFreight;
    /**
     * 垫付货款
     */
    private Double advancePayForGoods;
    /**
     * 代收
     */
    private Double collecting;
    /**
     * 客户返点
     */
    private Double customerRebate;
    /**
     * 业务返点
     */
    private Double businessRebate;
    /**
     * 审核状态 未审核0 审核1
     */
    private Integer status;
    /**
     * 付款方式
     */
    private Integer payType;
    /**
     * 业务员
     */
    private String salesman;
    /**
     * 单价
     */
    private Double unitPrice;
    /**
     * 立方单价
     */
    private Double cubeUnitPrice;
    /**
     * 总金额计算方式 1按重量 2按立方 3按整车 4按重量和立方 5垫付加运费
     */
    private Integer calmethod;
    /**
     * 总金额
     */
    private Double totalAmount;
    /**
     * 是否拆票 0否 1是
     */
    private Integer isSplit;
    /**
     * 出入库状态 0未出库 1已出库
     */
    private Integer inventoryStatus;
    /**
     * 提货状态 0未提货 1已提货
     */
    private Integer pickStatus;
    /**
     * 已收运费
     */
    private Double receivedFare;
    /**
     * 合计欠款
     */
    private Double debtTotal;
    /**
     * 赔付金额
     */
    private Double claimAmount;
    /**
     * 制单时间
     */
    private String chooseDate;
    /**
     * 已返点
     */
    private Double isPoint;
    /**
     * 未返点
     */
    private Double notPoint;
    /**
     * 已核销
     */
    private Double isWriteOff;
    /**
     * 未核销
     */
    private Double notWriteOff;
    /**
     * 是否到达国外
     */
    private Integer isForeign;
    /**
     * 配车最新到达地
     */
    @TableField(exist = false)
    private String addressDetail;

    /**
     * 配车最新到达地登记时间
     */
    @TableField(exist = false)
    private String addressTime;
    /**
     * 配车所装单据货物件数
     */
    @TableField(exist = false)
    private int dpCount;

    @TableField(exist = false)
    private List<DpDO> children;

    /**
     * 配送类型
     */
    @TableField(exist = false)
    private int signStatus;
}